package _03sql;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Predicate;
import java.util.stream.Collectors;

public class UserListExample {
    public static void main(String[] args) {
        List<User> userList = new ArrayList<>(10); // 初始化ArrayList，并设置初始容量为10（这不是必需的，但可以提高性能）

        // 添加10个User对象到userList中
        for (int i = 0; i < 10; i++) {
            User user = new User(i + 1, "user" + (i + 1), "password" + (i + 1), 20 + i); // 这里只是示例数据
            userList.add(user);
        }

        // 输出userList中的User对象
        for (User user : userList) {
            System.out.println(user);
        }
        /*
        //筛选出来User中年龄小于25的User为List<User>
        List<User> list=userList.stream().filter(new Predicate<User>() {
            @Override
            public boolean test(User user) {
                return user.getAge()<25;
            }
        }).collect(Collectors.toList());
        System.out.println(list);
        //将List<User>转换List<String>，为用户名信息
        List<String> listStr=new ArrayList<>();
        for (User user : userList) {
            listStr.add(user.toString());
        }
        System.out.println(listStr);
         */
        // 使用Stream API过滤年龄小于25的User对象
        List<User> users = userList.stream().filter(user -> user.getAge() < 25).collect(Collectors.toList());
        users.forEach(System.out::println);
        // 使用Stream API将User对象的username属性提取出来，组成一个新的List
        List<String> usernames = userList.stream().map(User::getUsername).collect(Collectors.toList());
        usernames.forEach(System.out::println);
    }
}
